package com.kfy.singletondemo;

/**
 * @ProjectName: SingleTonDemo
 * @Package: com.kfy.singletondemo
 * @Author: K.F.Y
 * @Date: 2021/5/8
 */
public class SingleTon {

    private static volatile SingleTon instance; //volatile 防止指令重排

    public static SingleTon getInstance(){
        if (instance==null){ //外层判空 ： 因为使用synchronized的代码块会影响性能，我们只在instance为空时才调用，增加性能
            synchronized (SingleTon.class){
                if (instance==null){ //内层判空 ：同步下进行判空，防止多线程重复调用
                    instance = new SingleTon();
                }
            }
        }
        return instance;
    }
}
